/*******************************************************************************
 * @(#)LoginDao.java 2018年09月30日 22:18
 * Copyright 2018 upbos.com. All rights reserved.
 *******************************************************************************/
package com.upbos.upm.login;

import com.upbos.data.core.SingleDao;
import com.upbos.upm.entity.Module;
import com.upbos.upm.entity.Org;
import com.upbos.upm.entity.User;
import org.springframework.stereotype.Repository;

import javax.annotation.Resource;
import java.util.List;

/**
 * <b>Application name：</b> LoginDao.java <br>
 * <b>Application describing：用户登录、获取相关菜单以及权限等操作dao</b> <br>
 * <b>Copyright：</b> Copyright &copy; 2018 upbos.com 版权所有。<br>
 * <b>Company：</b> upbos.com <br>
 * <b>Date：</b> 2018年09月30日 22:18 <br>
 * <b>author：</b> <a href="mailto:wangjz@miyzh.com"> wangjz </a> <br>
 * <b>version：</b>V5.0.0 <br>
 */
@Repository
public class LoginDao {

    @Resource
    private SingleDao singleDao;

    public User getUserByLoginName(String loginName) {
        return singleDao.queryOne("LoginDaoMapper.getUserByLoginName", loginName);
    }


    /**
     * 查询所有功能模块，并缓存
     *
     * @return 返回不是叶子节点的功能模块列表和是叶子节点的功能模块列表
     */
    public List<Module> listAllModule() {
        return singleDao.queryList("LoginDaoMapper.listAllModule");
    }

    public List<String> listUserModuleId(String uid) {
        return singleDao.queryList("LoginDaoMapper.listUserModuleId", uid);
    }


    /**
     * 获取用户角色列表
     *
     * @param uid 用户Id
     * @return 用户角色列表
     */
    public List<String> listUserRole(String uid) {
        return singleDao.queryList("LoginDaoMapper.listUserRole", uid);
    }

    public List<String> listUserModule(List<String> roles) {
        return singleDao.queryList("LoginDaoMapper.listUserModule", roles);
    }

    public List<String> listUserModuleRes(List<String> roles) {
        return singleDao.queryList("LoginDaoMapper.listUserModuleRes", roles);
    }

    public List<String> listUserPrivilege(List<String> roles) {
        return singleDao.queryList("LoginDaoMapper.listUserPrivilege", roles);
    }

    public Org getOrgById(String orgId) {
        return singleDao.queryOne("LoginDaoMapper.getOrg", orgId);
    }


}